/**
 * 
 */
package com.pe.pgn.clubpgn.service;

import java.util.List;

import com.pe.pgn.clubpgn.domain.ClpdTipoTarjetaPersona;
import com.pe.pgn.clubpgn.domain.ClpmCatalogo;
import com.pe.pgn.clubpgn.domain.beans.BNCatalogo;
import com.pe.pgn.clubpgn.domain.beans.BNCatalogoDetalle;

/**
 * @author Edwin Farfan
 *
 */
public interface CatalogoService {
	
	public List<ClpmCatalogo> obtenerListaCatalogos();
	
	public ClpmCatalogo obtenerCatalogo(Long id);
	
	public int saveCatalogo(ClpmCatalogo catalogo) throws NoExisteAlmacenException,Exception;

	public int eliminarCatalogo(Long id);
	
	public List<ClpmCatalogo> busquedaCatalogo(String descripcion, String codigo, 
			String tipoTarjeta, String fechaInicio, String fechaFin, String estado);
	
	public int existeCatalogoRangoFecha(String fechaInicio, String fechaFin, Long catalogoID);

	public List<BNCatalogo> obtenerTodoCatalogos(boolean itemDefault);
	
	public void setEliminacionPremioCatalogo(ClpmCatalogo catalogo);
	
	public void inactivarCatalogo(ClpmCatalogo catalogo);
	
	public boolean vigenciaCatalogo(ClpmCatalogo catalogo);
	
	public ClpdTipoTarjetaPersona  obtenerTipoTarjetaPersona(Long id);

	public int existeCatalogoDescription(String deCatalogo, Long id);

	public int existeCatalogoCodigoCatalog(String coCodigoCatalogo, Long id);
	
	public int darbajaPremio(Long id);
	
	public BNCatalogoDetalle obtenerCatalogoxPremio(Long id, Long idpremio);
	
	public String desasignarPremios( BNCatalogoDetalle catalogo);
	
	public List<ClpmCatalogo> obtenerListaCatalogosVigente();
	
	public int sonCatalogosParalelos(String fechaInicio, String fechaFin);
	
	public String obteneridPremioInstantaneo(String idscatalogo);
	
	public String devolvermaximoCodPremioInstantaneo(String fechaInicio, String fechaFin);
	
	public List<BNCatalogoDetalle> obtenerPremiosCatalogos(String idCatalogo, String idArticulo);
	public int cantidadPremiosCatalogo(String idCatalogo);
	
	public List<ClpmCatalogo> obtenerCatalogos();
	
}
